package com.gdc.microservicecloud.service;

import com.gdc.microservicecloud.model.Dept;
import com.gdc.microservicecloud.service.impl.DeptClientServiceFallbackFactory;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * Description: 添加 部门的 Feign 接口，并标注 注解 @FeignClient
 *            @FeignClient
 *                  value:              应用实例名称
 *                  fallbackFactory：   异常回调工厂类
 *
 * @author: gdc
 * @date: 2021/1/24
 * @version 1.0
 */
@FeignClient(value = "microservicecloud-dept", fallbackFactory = DeptClientServiceFallbackFactory.class)
@RequestMapping("/dept")
public interface DeptClientService {

    /**
     * 添加部门信息
     *
     * @param dept 部门信息
     * @return 结果
     */
    @PostMapping("/add")
    boolean add(@RequestBody Dept dept);

    /**
     * 通过ID 获取部门信息
     *
     * @param id ID
     * @return 部门信息
     */
    @GetMapping("/get/{id}")
    Dept get(@PathVariable("id") Long id);

    /**
     * 获取部门信息列表
     *
     * @return 部门信息列表
     */
    @GetMapping("/list")
    List<Dept> list();

}
